Sliding windows
import sys
sys.path.insert(1, 'libs/')
import dynfc as dyn
import numpy as np
from numpy.random import seed, rand
import scipy as sc
from scipy import io
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.cm as cm
import matplotlib.patches as patches
font = {'weight' : 'regular',
'size' : 24}
plt.rc('font', **font)
ts = sc.io.loadmat('data/ts.mat')['ts']
ts = ts.transpose()
corr_mats, idx = dyn.corr_slide(ts,300,50)
idx.shape
> (24,)
a = [1,1,1,1,1.6]
fig,ax = plt.subplots(1)
fig.set_figheight(10)
fig.set_figwidth(20)
plt.style.use('tableau-colorblind10')
for i in range(5):
plt.plot(2*i*a[i] + ts[i,]/1.4)
> [<matplotlib.lines.Line2D object at 0x7f8232790a20>]
> [<matplotlib.lines.Line2D object at 0x7f8232779c18>]
> [<matplotlib.lines.Line2D object at 0x7f823277e320>]
> [<matplotlib.lines.Line2D object at 0x7f823277e358>]
> [<matplotlib.lines.Line2D object at 0x7f8232779dd8>]
> Text(0.5, 0, 'Time [TRs]')
> Text(0, 0.5, 'BOLD')
ax.tick_params(left=False)
ax.set_yticklabels([])
> [Text(0, -2.0, ''), Text(0, 0.0, ''), Text(0, 2.0, ''), Text(0, 4.0, ''), Text(0, 6.0, ''), Text(0, 8.0, ''), Text(0, 10.0, ''), Text(0, 12.0, ''), Text(0, 14.0, '')]
> (-3.0, 15.4)
> (0.0, 1200.0)
rect = patches.Rectangle((idx[0],-2.8),300,18,linewidth=4,edgecolor='#595959',facecolor='none')
ax.add_patch(rect)
> <matplotlib.patches.Rectangle object at 0x7f81f94d10f0>
rect = patches.Rectangle((idx[5],-2.8),300,18,linewidth=4,edgecolor='#A56B6B',facecolor='none')
ax.add_patch(rect)
> <matplotlib.patches.Rectangle object at 0x7f81f94d1390>
rect = patches.Rectangle((idx[9],-2.8),300,18,linewidth=4,edgecolor='#CE3E3E',facecolor='none')
ax.add_patch(rect)
> <matplotlib.patches.Rectangle object at 0x7f81f94d16a0>
rect = patches.Rectangle((idx[16],-2.8),300,18,linewidth=4,edgecolor='#FF0000',facecolor='none')
ax.add_patch(rect)
> <matplotlib.patches.Rectangle object at 0x7f81f94d19b0>

import sys
sys.path.insert(1, 'libs/')
import dynfc as dyn
import numpy as np
from numpy.random import seed, rand
import scipy as sc
from scipy import io
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.cm as cm
import matplotlib.patches as patches
aa = plt.figure(figsize = [6,6])
ax = sns.heatmap(corr_mats[:,:,0],
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = True,
cbar = False)
ax.axis('off')
> (0.0, 200.0, 200.0, 0.0)
ax.tick_params(left=False, bottom=False)
plt.show()

aa = plt.figure(figsize = [6,6])
ax = sns.heatmap(corr_mats[:,:,5],
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = True,
cbar = False)
ax.axis('off')
> (0.0, 200.0, 200.0, 0.0)
ax.tick_params(left=False, bottom=False)
plt.show()

aa = plt.figure(figsize = [6,6])
ax = sns.heatmap(corr_mats[:,:,9],
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = True,
cbar = False)
ax.axis('off')
> (0.0, 200.0, 200.0, 0.0)
ax.tick_params(left=False, bottom=False)
plt.show()

aa = plt.figure(figsize = [6,6])
ax = sns.heatmap(corr_mats[:,:,16],
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = True,
cbar = False)
ax.axis('off')
> (0.0, 200.0, 200.0, 0.0)
ax.tick_params(left=False, bottom=False)
plt.show()

Cofluctuations
import sys
sys.path.insert(1, 'libs/')
import numpy as np
import scipy as sc
from scipy import io
import dynfc as dyn
import seaborn as sns
import matplotlib.pyplot as plt
ts = sc.io.loadmat('data/ts.mat')['ts']
ts = ts.transpose()
mat1, rss = dyn.corr_slide(ts,24)
mat1 = mat1[:,:,0]
aa = plt.figure(figsize = [6,6])
ax = sns.heatmap(mat1,
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = False,
cbar = True)
ax.axis('off')
> (0.0, 200.0, 200.0, 0.0)
ax.tick_params(left=False, bottom=False)
plt.show()

upt = np.triu_indices(mat1.shape[0], k = 1)
vec = (mat1[upt])
toPlot = np.zeros((vec.shape[0],1))
toPlot[:,0] = vec
aa = plt.figure(figsize = (12/50,4))
ax = sns.heatmap(toPlot[:,0:1],
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = False,
cbar = False)
ax.axis('off')
> (0.0, 1.0, 19900.0, 0.0)

edges_series, corr_mats, rss = dyn.cofluct(ts, 24)
aa = plt.figure(figsize = (12,4))
> /Users/runner/Library/r-miniconda/envs/r-reticulate/bin/python:1: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`).
ax = sns.heatmap(edges_series,
cmap = "RdBu_r",
vmin = -1,
vmax = 1,
square = False,
cbar = False)
ax.axis('off')
> (0.0, 1200.0, 19900.0, 0.0)
